package com.skh.math;

/**
 * @Author: skh
 * @Date: 2020/3/25 9:56
 * @Description: 3的幂
 */
public class IsPowerOfThree {

    /*
    给定一个整数，写一个函数来判断它是否是 3 的幂次方。

    示例 1:

    输入: 27
    输出: true
    示例 2:

    输入: 0
    输出: false
    示例 3:

    输入: 9
    输出: true
    示例 4:

    输入: 45
    输出: false
     */

    /*
    法一：循环迭代
    找出数字 n 是否是数字 b 的幂的一个简单方法是，n%3 只要余数为 0，就一直将 n 除以 b
    如果是3的幂,那最后一定是1,不然就是0
     */
    public boolean isPowerOfThree(int n) {
        if (n < 1) {
            return false;
        }

        while (n % 3 == 0) {
            n = n/3;
        }

        return n==1;
    }
}
